`timescale 1ps/1ps
`include "full_adder.v"

module tb_full_adder;

    reg Ai, Bi, Ci;
    wire Si, Ciout;

    // 实例化 full_adder 模块
    full_adder uut (
        .Ai(Ai),
        .Bi(Bi),
        .Ci(Ci),
        .Si(Si),
        .Ciout(Ciout)
    );

    initial begin
        // 打开 VCD 文件
        $dumpfile("wave.vcd");
        // 转储 tb_full_adder 模块中的所有变量
        $dumpvars(0, tb_full_adder);

        // 输入测试数据
        Ai = 1'b0; Bi = 1'b0; Ci = 1'b0;
        #1 Ai = 1'b0; Bi = 1'b0; Ci = 1'b1;
        #1 Ai = 1'b0; Bi = 1'b1; Ci = 1'b0;
        #1 Ai = 1'b0; Bi = 1'b1; Ci = 1'b1;
        #1 Ai = 1'b1; Bi = 1'b0; Ci = 1'b0;
        #1 Ai = 1'b1; Bi = 1'b0; Ci = 1'b1;
        #1 Ai = 1'b1; Bi = 1'b1; Ci = 1'b0;
        #1 Ai = 1'b1; Bi = 1'b1; Ci = 1'b1;
        #1;
    end
endmodule
